It is very
useful to be able to undo actions one has done. In normal Emacs
buffers, it's easy enough—you just push the
undo button. In Gnus buffers, however, it isn't that
simple.
The things Gnus displays in its buffer is of no value
whatsoever to Gnus—it's all just data designed to look nice
to the user. Killing a group in the group buffer with
C-k makes the line disappear, but that's just a
side-effect of the real action—the removal of the group in
question from the internal Gnus structures. Undoing something
like that can't be done by the normal Emacs undo
function.
Gnus tries to remedy this somewhat by keeping track of what
the user does and coming up with actions that would reverse the
actions the user takes. When the user then presses the
undo key, Gnus will run the code to reverse the
previous action, or the previous actions. However, not all
actions are easily reversible, so Gnus currently offers a few key
functions to be undoable. These include killing groups, yanking
groups, and changing the list of read articles of groups. That's
it, really. More functions may be added in the future, but each
added function means an increase in data to be stored, so Gnus
will never be totally undoable.
The
undoability is provided by the gnus-undo-mode minor
mode. It is used if gnus-use-undo is
non-nil, which is the default. The C-M-_
key performs the gnus-undo command, which should
feel kinda like the normal Emacs undo command.